# 收集所有子模块（按依赖顺序添加）
add_subdirectory(common)
add_subdirectory(event)
add_subdirectory(io_model)
add_subdirectory(thread_pool)
add_subdirectory(server)

# 主程序（依赖所有子模块）
add_executable(${PROJECT_NAME} main.cpp)

# 链接所有子模块库
target_link_libraries(${PROJECT_NAME}
    PRIVATE
    common
    event
    io_model
    thread_pool
    server
    Threads::Threads  # 添加这一行，链接线程库
)

# 头文件搜索路径（包含 src 目录，方便内部模块引用）
target_include_directories(${PROJECT_NAME}
    PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
)